//

// 自己写的答案（错误）

var nums1 = [1, 2, 3, 0, 0, 0]
var nums2 = [2, 5, 6]

/**
 * @param {number[]} nums1
 * @param {number} m
 * @param {number[]} nums2
 * @param {number} n
 * @return {void} Do not return anything, modify nums1 in-place instead.
 */
var merge = function (nums1c, m, nums2c, n) {
    nums1c = nums1c.slice(0, m).concat(nums2c.slice(0, n)) // 函数的参数相当于帮你重新声明了一个变量，所以参数里的 nums1c 和 nums1 是不同的变量
    console.log(nums1, nums1c) // [ 1, 2, 3, 0, 0, 0 ] [ 1, 2, 3, 2, 5, 6 ]
};

merge(nums1, 3, nums2, 3)

console.log(nums1) // [ 1, 2, 3, 0, 0, 0 ]

// 官方答案
var merge = function(nums1, m, nums2, n) {
    nums1.splice(m, nums1.length - m, ...nums2);
    nums1.sort((a, b) => a - b);
};